let Web3 = require('web3')


let web3 = new Web3('http://localhost:9545')

// console.log(web3)


getAccounts = () => {
    // web3.eth.getAccounts((err, info) => {
    //     console.log(info)
    // })


    //web3 1.0版本不支持同步调用
    // let info = web3.eth.accounts()
    // console.log(info)
}

getAccounts()


getBalance = async () => {
    //获取账户
    let accounts = await web3.eth.getAccounts()
    // console.log(info)

    //获取账户余额
    let balance = await web3.eth.getBalance(accounts[0])
    //将wei单位的数值，转换为eth单位
    let ethValue = web3.utils.fromWei(balance, 'ether')
    console.log(ethValue)


    //获取默认账户
    let acc = web3.eth.defaultAccount
    console.log('默认账户:', acc)


    //获取默认区块， 这个值可以修改，然后所有的数据都是已这个区块为基准
    //'Latest', 'Genesis', 'Pending', 可以设置数字(区块高度)
    //字符串不要设置成出了上述三个以外的数据
    let defaultBlock = web3.eth.defaultBlock
    console.log('默认区块:', defaultBlock)

    //获取区块高度：web3.eth.blockNumber

    //发起一笔转账，由账户0，向账户1，转10个ETH
    //转账时不需要合约的，通过sendTransaction方法就能实现
    let account0 = accounts[0]
    let account1 = '0xf17f52151ebef6c7334fad080c5704d77216b732'
    // let account1 = accounts[1]
    // console.log(account0, account1)

    let b0 = await web3.eth.getBalance(accounts[0])
    let b1 = await web3.eth.getBalance(accounts[1])

    console.log('转账前, account0 :', b0)
    console.log('转账前, account1 :', b1)

    // let data = 'helloworld'
    // data = Buffer.from(data).toString('hex')
    //转账数字要使用单引号
    let res = await web3.eth.sendTransaction({from: account0, to: account1, value: web3.utils.toWei('1', 'ether')})
    // let res = await web3.eth.sendTransaction({from: account0, to: account1, gas : 1000000, data : data})

    let b00 = await web3.eth.getBalance(accounts[0])
    let b11 = await web3.eth.getBalance(accounts[1])

    console.log('转账后, account0 :', b00)
    console.log('转账后, account1 :', b11)


}

getBalance()


